package com.Day2;

public class Method {
    /*
      需求，一个简易的计算机，计算简单整数的加、减、乘、取整、取余。
      先输入两个数，然后选择算数方式。
      打印出结果，并询问是否继续计算，是，继续；不是，程序结束。
      设计：
            1、获取输入值的方法
            2、计算的方法5个
            3、打印的方法
            4、主方法调用上面的方法
     */

    /**
     * 输入
     *
     * @return  返回输入的值
     */
    public static int input() {
        java.util.Scanner s = new java.util.Scanner(System.in);
        int i = s.nextInt();
        int in = i;
        return in;
    }

    /**
     * 输出方法
     *
     * @param out  打印out
     */
    public static void print(int out) {
        System.out.println("结果为：" + out);
    }

    /**
     * 加法
     *
     * @param a 参数1
     * @param b 参数2
     * @return 返回和
     */
    public static int addition(int a, int b) {
        return (a + b);
    }

    /**
     * 减法
     *
     * @param a
     * @param b
     * @return
     */
    public static int subtraction(int a, int b) {
        return (a - b);
    }

    /**
     * 乘法
     *
     * @param a
     * @param b
     * @return
     */
    public static int multiplication(int a, int b) {
        return (a * b);
    }

    /**
     * 取整
     *
     * @param a
     * @param b
     * @return
     */
    public static int integer(int a, int b) {
        return (a / b);
    }

    /**
     * 取余
     *
     * @param a
     * @param b
     * @return
     */
    public static int remainder(int a, int b) {
        return (a % b);
    }

    /**
     * 判断是否继续运行程序的方法
     * @return  返回 控制程序是否继续运行的值 【0：结束；1：运行】
     */
    public static int kaiguan() {
        //定义程序开关 【0：结束；1：运行】 初始为1：运行
        int n = 1;
        //定义下面循环的开关 【0：结束；1：继续】 初始为1：继续
        int k = 1;
        while (k == 1) {
            System.out.println("是否继续？【0：结束；1：继续】");
            //获取输入的值
            int input = input();
            if (input == 0) {
                //结束
                //程序开关的值赋值为0：结束
                n = 0;
                //本次循环的开关值赋值为0：结束
                k = 0;
            } else if (input == 1) {
                //继续
                //程序开关的值不变，程序继续运行
                n = 1;
                //本次循环的开关值赋值为0：结束
                k = 0;
            } else {
                System.out.println("未知指令。请重新输入。");
            }
        }
        //返回 控制程序是否继续运行的值 【0：结束；1：运行】
        return n;
    }

    public static void main(String[] args) {
        //程序判断是否继续运行指令：1：运行；2：停止
        int n = 1;
        while (n == 1) {
            System.out.print("请输入第一个参数：");
            //调用输入方法，并把获取输入的值赋予a
            int a = input();
            System.out.print("请输入第二个参数：");
            //调用输入方法，并把获取输入的值赋予b
            int b = input();
            //下面输入正确运算符循环的开关  1：输入错误继续循环 0：输入正确退出循环
            int m = 1;
            while (m == 1) {
                System.out.println("请输入要怎么运算：");
                System.out.println("0:加法");
                System.out.println("1:减法");
                System.out.println("2:乘法");
                System.out.println("3:取整");
                System.out.println("4:取余");
                ////调用输入方法，并把获取输入的值赋予运算符c
                int c = input();
                if (c == 0) {
                    //加法
                    //调用加法函数，并将结果赋予addition
                    int addition = addition(a, b);
                    //调用打印函数输出addition
                    print(addition);
                    //输入正确退出循环,赋值0给m
                    m=0;
                    //调用程序是否运行方法，返回值赋予n   n=1：继续执行程序    n=0：结束执行程序
                    n = kaiguan();
                } else if (c == 1) {
                    //减法
                    //调用减法函数，并将结果赋予subtraction
                    int subtraction = subtraction(a, b);
                    //调用打印函数输出subtraction
                    print(subtraction);
                    //输入正确退出循环,赋值0给m
                    m=0;
                    //调用程序是否运行方法，返回值赋予n   n=1：继续执行程序    n=0：结束执行程序
                    n = kaiguan();
                } else if (c == 2) {
                    //乘法
                    //调用乘法函数，并将结果赋予multiplication
                    int multiplication = multiplication(a, b);
                    //调用打印函数输出multiplication
                    print(multiplication);
                    //输入正确退出循环,赋值0给m
                    m=0;
                    //调用程序是否运行方法，返回值赋予n   n=1：继续执行程序    n=0：结束执行程序
                    n = kaiguan();
                } else if (c == 3) {
                    //取整
                    //调用取整函数，并将结果赋予integer
                    int integer = integer(a, b);
                    //调用打印函数输出integer
                    print(integer);
                    //输入正确退出循环,赋值0给m
                    m=0;
                    //调用程序是否运行方法，返回值赋予n   n=1：继续执行程序    n=0：结束执行程序
                    n = kaiguan();
                } else if (c == 4) {
                    //取余
                    //调用取余函数，并将结果赋予remainder
                    int remainder = remainder(a, b);
                    //调用打印函数输出remainder
                    print(remainder);
                    //输入正确退出循环,赋值0给m
                    m=0;
                    //调用程序是否运行方法，返回值赋予n   n=1：继续执行程序    n=0：结束执行程序
                    n = kaiguan();
                } else {
                    System.out.println("未知指令。请重新输入");
                }
            }
        }
        System.out.println("程序结束，感谢使用。");
    }
}
